/*!
 * \file MediaStateWaitingForMediaConnection.h
 * \brief State where connection is prepared and generator is
 * waiting for user client to connect to the socket
 */

#ifndef MGW_MEDIA_STATE_WAIT_FOR_CONN_H
#define MGW_MEDIA_STATE_WAIT_FOR_CONN_H

#include "MediaStateBase.h"
#include "MediaGenerator.h"

namespace tsc
{
namespace mgw
{

using common::EventData;

/**
 * Initial state of MediaGenerator.
 * Waiting for the socket to user client is opened for transmission
 */
class MediaStateWaitingForMediaConnection : public MediaStateBase
{
public:

	static MediaStateWaitingForMediaConnection* instance();

protected:

	virtual ~MediaStateWaitingForMediaConnection();

    virtual void
    handleEventSetupConnection(
        MediaGenerator* gen,
        MediaEventSetupConnection* event,
        EventData*& eventData);

private:
	MediaStateWaitingForMediaConnection();

};

} // namespace mgw
} // namespace tsc

#endif // MGW_MEDIA_STATE_WAIT_FOR_CONN_H
